package org.moonlight.jvm.classfile.attribute;

import lombok.Getter;
import org.moonlight.jvm.classfile.ClassReader;

/**
 * ConstantValue是定长属性，只会出现在 field_info 结构中，用于表示常量表达式的值。其结构定义如下：
 *   ConstantValue_attribute {
 *     u2 attribute_name_index
 *     u4 attribute_length      // 这个值必须是2
 *     u2 constantvalue_index  // constantvalue_index 是常量池索引，但具体指向哪种常量因字段类型而异。例如字段是 long 类型时，就指向 CONSTANT_Long_info 常量
 *   }
 *
 * @author Moonlight
 * @createTime 2023/8/15 16:25
 **/
@Getter
public class ConstantValueAttribute implements AttributeInfo {

    private int constantValIdx;

    @Override
    public void readInfo(ClassReader reader) {
        this.constantValIdx = reader.readUint16();
    }

}
